package com.mohunhun.services;

import com.mohunhun.model.User;
import org.apache.ibatis.annotations.Param;

public interface IUserService {

    /**
     * 创建普通用户
     * @param user 用户对象
     */
    void creatNormalUser(User user);


    /**
     * 根据用户名查询用户信息
     * @param username 用户名
     * @return 用户对象
     */
    User selectByUserName(String username);


    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 用户对象
     */
    User login(String username, String password);



    /**
     * 根据用户ID查询用户信息
     * @param id 用户ID
     * @return 用户对象
     */
    User selectById(Long id);


    /**
     * 根据用户ID增加一篇文章
     * @param id 用户ID
     * @return 影响的行数
     */
    void addOneArticleCountById(Long id);


    /**
     * 根据用户ID减少一篇文章
     * @param id 用户ID
     * @return 影响的行数
     */
    void subOneArticleCountById(Long id);



    /**
     * 修改用户信息
     * @param user 用户对象
     */
    void modifyInfo(User user);



    /**
     * 更新用户头像URL和文件哈希值
     * @param userId 用户ID
     * @param newAvatarUrl 新的头像URL
     * @param newFileHash 新的文件哈希值
     */
    void updateAvatarUrlAndHash(Long userId, String newAvatarUrl, String newFileHash);


    /**
     * 修改用户密码
     * @param id 用户ID
     * @param newPassword 新密码
     * @param oldPassword 旧密码
     */
    void modifyPassword(Long id, String newPassword, String oldPassword);
}
